package com.jfast.framework.job;

import java.util.ArrayList;
import java.util.List;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import com.jfast.framework.log.Logger;

public class JobManger {
	
	static final Logger logger = Logger.getLogger(JobManger.class);
	
	public static List<JfastJobBuild> jobs = new ArrayList<JfastJobBuild>();
	
	private static final JobManger jobManger = new JobManger();
	
	private JobManger(){}
	
	public static JobManger getJobManger() {
		return jobManger;
	}

	public void addJfastBuild(JfastJobBuild jfastBuild){
		jobs.add(jfastBuild);
	}
	
	public void removeJfastBuild(JfastJobBuild jfastBuild){
		jobs.remove(jfastBuild);
	}

	public static List<JfastJobBuild> getJobs() {
		return jobs;
	}
	
	public void start(){
		try {
			Scheduler scheduler = new StdSchedulerFactory().getScheduler();
			for(JfastJobBuild job:jobs){
				job.build(scheduler);
			}
			scheduler.start();
			logger.info("任务启动成功");
		} catch (SchedulerException e) {
			logger.error("job start error.........",e);
			System.exit(-1);
		}
	}
}
